#!/usr/bin/env bash
# 指定项目名$dirname, 分支$branch, 项目地址$git_clone_url, 自动部署.
## 私人项目需要在authinfo.sh中配置$username和$passwd, 并指定$private_project为1.
## 需要新建镜像则将$build_new_image设为1, 这个操作会影响init.sh脚本.

# --- 项目路径, 项目名, git分支名, 容器名, 宿主机端口, 容器映射端口

# 项目名首字母不能大写, 否则新建image_name时会报错.
# 且项目名应和git中的保持一致.
dirname=a2105_mySimpleUi
branch=master
git_clone_url=https://gitee.com/bode135/$dirname.git

# 是否为私人项目, 如果为1, 则需要加载"authinfo.sh"里的验证信息.
private_project=1

# 注意: build_new_image为1时, init.sh会删除新建的镜像
build_new_image=1
# 用image_name创建容器.
image_name=""

# --------------- 以下为自动化脚本 -------------
authinfo_file_name=authinfo.sh
# 获取能通过验证的git_clone_url
if [ $build_new_image == "1" ]; then
    if [ -f "$authinfo_file_name" ]; 
    then 
        source authinfo.sh; 
        if [ $username != "" ]; then
            auth_info=$username:$password
            git_clone_url=`echo $git_clone_url | sed "s/\(:\/\/\)/\1$auth_info@/"`
            echo "****** load authinfo.sh!"
        fi
    fi
fi

echo -e "\n\n------------ git url --------------"
echo -e "\n********* $git_clone_url\n\n";
sleep 1

# 镜像和容器
container_name=$dirname

## 镜像名会自动转小写
if [ $build_new_image == "1" ]; then
    image_name=`echo "$dirname" | perl -pe 's/(.*)/\L\1/'`
    echo "********* will build a new image: [$image_name]";
fi

# --- 项目端口, ssh端口
## 用sed从项目名中提取端口.
## 端口配置, 如[2103]意为2021年第3个项目, 对应ssh为[22103]
port_host=`echo $dirname | perl -pe 's/(.*?)([0-9]+)_.*/\2/'`
port_container=80
## ssh端口为项目端口前面加个"2"
ssh_port_host=2$port_host
ssh_port_container=22

echo "******** port: $port_host, ssh_port: $ssh_port_host"

echo
echo "-------- 加载配置信息[config.sh]成功!"


# --- 常用调试命令
# docker exec -it $container_name bash
# pip install  -i https://pypi.tuna.tsinghua.edu.cn/simple 

